Method and system of providing artifacts in a cloud computing environment

ABSTRACT

A method and system for providing artifacts in a cloud computing environment. In an embodiment, a method includes generating an executable file associated with an artifact to be deployed on a cloud computing system. The method includes creating a directory entry associated with the artifact in an artifact repository. The method includes generating an association between the executable file associated with the artifact and the directory entry associated with the artifact. The method includes generating association between a template associated with the artifact and the directory entry associated with the artifact. The method includes generating an artifact package including the executable file and the template associated with the artifact. The method includes publishing the artifact package associated with the artifact in an application marketplace using the directory entry.

CROSS REFERENCE TO RELATED APPLICATIONS

This present patent document is a § 371 nationalization of PCT Application Serial Number PCT/EP2019/050947 filed Jan. 15, 2019, designating the United States, which is hereby incorporated in its entirety by reference. This patent document also claims the benefit of EP18151637.8 filed on Jan. 15, 2018 and EP19151684.8 filed on Jan. 14, 2019 both of which are also hereby incorporated in their entirety by reference.

FIELD

Embodiments relate to a cloud computing system, a method, and a system of providing artifacts in a cloud computing environment.

BACKGROUND

With advent of cloud computing technology, a large number of devices (also known as ‘assets’) are connected to a cloud computing system via the Internet. The devices may be remotely located from the cloud computing system. For example, the devices may be equipment, sensors, actuators, robots, machinery in an industrial set-up(s). The devices may also be medical devices and equipment in a healthcare facility. Furthermore, the devices may be home appliances or office appliances.

The cloud computing system may provide remote commissioning, configuring, monitoring, controlling, and maintaining the connected devices. Also, the cloud computing system may facilitate storing large amounts of data periodically gathered from the devices, analyzing the large amounts of data, and providing insights (e.g., Key Performance Indicators, Outliers) and alerts to operators, field engineers or owners of the devices via graphical user interface (e.g., of web applications). The insights and alerts may provide to control and maintain the devices, leading to efficient and fail-safe operation of the devices. The cloud computing system may also provide modifying parameters associated with the devices and issues control commands via the graphical user interface based on the insights and alerts.

The cloud computing system may include a plurality of servers or processors (also known as ‘cloud infrastructure’), that may be geographically distributed or co-located, connected with each other via a network. A dedicated platform (hereinafter referred to as ‘cloud computing platform’) is installed on the servers/processors for providing above functionality as a service (hereinafter referred to as ‘cloud service’). The cloud computing platform may include a plurality of software programs executed on one or more servers or processors of the cloud computing system to provide delivery of the requested service to the devices and its users (hereinafter referred to as tenants).

One or more artifacts are deployed in the cloud computing system to provide different cloud services to the tenants. The artifacts may include applications, simulation models, engineering configuration, application programming interfaces (APIs), and so on. For example, an application for monitoring operation of robots in a manufacturing facility may be deployed as an artifact. The application may be configured to analyze the data collected from the robots over a period of time. The tenant may subscribe to a cloud service that analyzes the data associated with the robots (for which the tenant is responsible) using the application, and displays the outcome of analysis (e.g., outliers) to the tenant via a web application on the tenant device.

Currently the artifacts are developed in an offline mode by developers using native development tools. Then the artifacts are uploaded to the cloud computing system via a web browser. The artifacts are deployed in the cloud computing platform and provisioned to one or more tenants. However, development stage, deployment stage, and provisioning stage of artifacts are independent of each other. The currently known cloud computing systems does not provide a cloud computing platform capable of managing artifacts throughout its lifecycle. This makes managing artifacts during its lifecycle a time consuming and cumbersome task. In some instances, the cloud computing system provides artifacts that may be used for operating and monitoring assets in an industrial plant. Each of the artifacts is configured for use in specific scenario and specific analysis requirement. The current cloud computing platform does not provide an artifact that may be used in different scenarios, thereby causing inconvenience to the user of the cloud computing platform.

In light of the above, there exists a need for a cloud computing system for providing an artifact package associated with an artifact.

BRIEF SUMMARY AND DESCRIPTION

The scope of the present invention is defined solely by the appended claims and is not affected to any degree by the statements within this summary. The present embodiments may obviate one or more of the drawbacks or limitations in the related art.

Embodiments provide a cloud computing system configured to provide an artifact package associated with an artifact.

Each artifact during its lifecycle may go through different stages such as development, testing, validation, deployment, provisioning, and real-time execution. The artifact may refer to a cloud application, an edge application, code snippet, hardware configuration, digital twin model, application programming interfaces (APIs), simulation model, connectivity solution, firmware, device configuration, security applications, and so on. In certain embodiments, the artifact may provide one or more tenants of a cloud computing system to access one or more cloud services provided by the cloud computing system. For example, the one or more cloud services provide the one or more tenants to efficiently commission, configure, monitor, control, and maintain an industrial plant communicatively connected to the cloud computing system.

According to an embodiment, the cloud computing system provides a cloud computing platform for developing, testing, validating, deploying, publishing, provisioning, and monitoring said each artifact associated with cloud service delivered by the cloud computing system. Thus, the cloud computing system provides management of artifact during its lifecycle. This is referred to as ‘Artifact Lifecycle Management’. The artifact lifecycle management on the cloud computing platform provides interaction between different stages during lifecycle of the artifact, thereby making management of artifact easy and efficient during its lifecycle.

Embodiments provide a method that includes generating an executable file associated with an artifact to be deployed on a cloud computing system. The method includes creating a directory entry associated with the artifact in an artifact repository. For example, the directory entry of the artifact includes description of the artifact indicating a function of the artifact, and application scenario of the artifact. Furthermore, the method includes generating an association between the executable file associated with the artifact and the directory entry associated with the artifact. The method also includes generating association between a template associated with the artifact and the directory entry associated with the artifact. The method includes generating an artifact package including the executable file and the template associated with the artifact. The method includes publishing the artifact package associated with the artifact in an application marketplace using the directory entry.

In an embodiment, the method includes storing the artifact package associated with the artifact in the artifact repository.

In an embodiment, the method includes receiving a request to access the artifact stored in artifact repository. The request to access the artifact includes one or more keywords associated with the artifact. The method includes accessing the directory entry associated with the artifact using the keywords associated with the artifact. For example, it is determined whether the keyword associated with the artifact matches with description of one or more directory entries in the artifact repository. If a match is found, the directory entry associated the artifact is accessed from the artifact repository. Furthermore, the method includes obtaining the artifact package associated with the artifact from the artifact repository using the directory entry. The method includes providing access to the artifact package associated with the artifact via the application marketplace.

In an embodiment, the method includes validating the artifact package associated with the artifact to be deployed on the cloud computing system.

In an embodiment, the method includes deploying the artifact package associated with the artifact in a productive environment of the cloud computing system.

In an embodiment, the method includes provisioning the artifact to one or more tenants of the cloud computing system.

In an embodiment, the method includes executing at least one instance of the artifact deployed in the productive environment according to one or more parameters in the template associated with the artifact.

In an embodiment, the method includes recording information associated with execution of the at least one instance of the artifact deployed in the productive environment. For example, the information associated with the execution of the at least one instance of the artifact includes execution time, response time, failed task, and similar artifacts.

In an embodiment, the method includes modifying one or more parameters of the template associated with the artifact.

Embodiments provide an apparatus that includes one or more processing units, and at least one accessible memory communicatively coupled to the one or more processing units. The at least one accessible memory includes an artifact lifecycle management module configured to perform any of the method steps performed above. For example, the apparatus may include a cloud computing system, a fog computing device, or an edge computing device.

Embodiments also provide a cloud computing environment including the apparatus described above.

Embodiments also provide a computer program product, including instructions stored therein, that when executed by one or more processing units, cause the one or more processing units to perform any of the method steps described above.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of a cloud computing system configured to manage artifacts throughout the lifecycle according to an embodiment.

FIG. 2 is a diagrammatic representation illustrating high level interaction between different components of an artifact lifecycle management module, according to an embodiment.

FIG. 3 is a process flowchart illustrating a method of artifact lifecycle management on the cloud computing system, according to an embodiment.

FIG. 4 is a block diagram of an artifact development module configured to develop an artifact to be deployed in a productive environment, according to an embodiment.

FIG. 5 is a block diagram of an artifact validation module configured to validate the artifact to be deployed in the productive environment, according to an embodiment.

FIG. 6 is a process flowchart illustrating a method of performing validation of artifacts to be deployed in the productive environment, according to an embodiment.

FIG. 7 is a block diagram of the artifact deployment module configured to authenticate and deploy the artifact in the productive environment, according to an embodiment.

FIG. 8 is a process flowchart illustrating a method of authenticating and deploying artifacts in the productive environment, according to an embodiment.

FIG. 9 depicts a graphical user interface displaying different applications associated with a developer according to an embodiment.

FIG. 10 depicts a graphical user interface showing an application to be deployed in the productive environment according to an embodiment.

FIG. 11 depicts a graphical user interface showing status of the application provisioned to tenants according to an embodiment.

FIG. 12 depicts a graphical user interface view showing status of different applications associated with the provider according to an embodiment.

FIG. 13 depicts a graphical user interface showing runtime behavior of the application being monitored according to an embodiment.

FIG. 14 is a schematic representation of the cloud computing system of FIG. 1 according to an embodiment.

FIG. 15 is a block diagram of an artifact package generation module of FIG. 4 according to an embodiment.

FIG. 16 is a process flowchart depicts a method of providing artifacts in the cloud computing environment according to an embodiment.

FIG. 17 is a process flowchart depicting a method of providing access to the artifact published in the application marketplace according to an embodiment.

FIG. 18 is a process flowchart depicted a method of executing the artifact deployed in the productive environment of the cloud computing system according to an embodiment.

DETAILED DESCRIPTION

Various embodiments are described with reference to the drawings, wherein like reference numerals are used to refer the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide thorough understanding of one or more embodiments. It may be evident that such embodiments may be practiced without these specific details.

Throughout the specification, the terms ‘cloud computing system’ and ‘cloud system’ are used interchangeably. Also, the terms ‘cloud computing platform’ and ‘cloud platform’ are used interchangeably.

FIG. 1 is a schematic representation of a cloud computing environment 100, according to an embodiment. FIG. 1 depicts the cloud system 102 that is configured to provide cloud services for managing an industrial plant 106 including assets 108A-N. The cloud computing system 102 is connected to assets 108A-N in the industrial plant 106 via a network 104 (e.g., Internet). The assets 108A-N may include servers, robots, switches, automation devices, motors, valves, pumps, actuators, sensors, and other industrial equipment. Although, FIG. 1 depicts the cloud computing system connected to one Industrial plant, one skilled in the art may envision that the cloud computing system 102 may be connected to several industrial plants located at different locations via the network 104. For example, the cloud services may include commissioning the industrial plant 106, simulating the industrial plant 106, monitoring and controlling the industrial plant 106, maintaining the industrial plant 106, upgrading the industrial plant 106 and so on. The cloud services may also include managing assets in the industrial plant 106, storing and analyzing plant data received from the assets 108A-N via IoT gateway (not shown), visualizing the analyzed data to personnel associated with the industrial plant 106, downloading software/firmware onto the assets, etc.

In order to access the cloud services, one or more artifacts are required to be deployed on a cloud computing platform, that are then accessed by personnel and assets in the industrial plant 106 to avail the cloud services. Therefore, the cloud computing system 102 is provided that is configured to manage artifacts throughout its lifecycle. Artifacts may include applications (application for monitoring plant), simulation models, engineering configuration, digital twin models, code snippets, APIs, security applications, firmware, microservices, for example.

The cloud computing system 102 is also connected to user devices 130A-N via the network 104. The user devices 130A-N may access the cloud computing system 102 for managing and/or accessing the artifacts, and accessing the cloud services.

The cloud computing system 102 includes a cloud interface 110, cloud hardware and OS 112, a cloud computing platform 114, and an artifact repository 128. The cloud interface 110 provides communication between the cloud computing platform 114 and the industrial plant 106. Also, the cloud interface 110 provides communication between the cloud computing platform 114 and the user devices 130A-N.

The cloud hardware and OS 112 may include one or more servers on which an operating system is installed and including one or more processing units, one or more storage devices for storing data, and other peripherals required for providing cloud computing functionality. The cloud computing platform 114 is a platform that implements functionalities such as data storage, data analysis, data visualization, data communication on the cloud hardware and OS 112 via APIs and algorithms; and delivers the aforementioned cloud services using artifacts. The cloud computing platform 114 employs an artifact lifecycle management module 116 for managing artifacts responsible for delivering cloud services throughout its lifecycle. The cloud computing platform 114 also includes an access control module 132, and an artifact execution module 134. The cloud computing platform may include a combination of dedicated hardware and software built on top of the cloud hardware and OS 112.

The artifact lifecycle management module 116 is stored in the form of machine-readable instructions and executable by the cloud computing platform 114. The artifact lifecycle management module 116 includes an artifact development module 118, an artifact validation module 120, an artifact deployment module 122, an artifact provisioning module 124, and an artifact monitoring module 126. The artifact development module 118 is configured for generating a development environment for developing an artifact. The development environment is made accessible via a graphical user interface of the user device 130A-N using valid credentials. The artifact development module 118 is configured for generating an artifact package of the artifact using the development environment. If the artifact is an application, the artifact package may include binary code and a manifest file. Additionally, the artifact development module 118 is configured for testing the artifact package using one or more test scenarios via the development environment. The artifact development module 118 is configured to store the artifact in the artifact repository 128 for validation and deployment purposes. The artifact development module 118 is configured to receive feedback on the artifact from the artifact validation module 120, the artifact deployment module 122 and the user devices 130A-N. The artifact development module 118 is configured to process the feedback and make necessary changes to the artifact so that the artifact may be deployed and used without any issues.

The artifact validation module 120 is configured to automatically validate an artifact to be deployed on the cloud computing platform 114. The artifact deployment module 122 is configured to deploy the validated artifact in a productive environment of the cloud computing platform 114. The productive environment is a live system that makes the artifact usable by tenants. In other words, the deployed artifact is executed in the productive environment when the tenant accesses the artifact.

The artifact provisioning module 124 is configured to provision the deployed artifact to one or more tenants of the cloud computing platform 114. In other words, artifact provisioning module 124 is configured to assign the artifact to requesting tenants. When the artifact is provisioned to the artifact, the artifact is displayed on a user interface of a tenant device (e.g., the user device 130A). The tenant may access cloud services using the provisioned artifact. Alternatively, the tenant may access the artifact itself using the tenant device 130A. The tenant may be owner of assets in the industrial plant 106 that has subscribed to the artifacts deployed on the cloud computing platform 114. The tenant user associated with the tenant may be a tenant administrator of the industrial plant 106 that may assign rights to access the artifact deployed on the cloud computing platform 114 to sub-tenants (e.g., other tenant users). In the industrial plant 106, the sub-tenants may include but not limited to plant operators, field engineers, commissioning agents, IoT agents, IoT gateways, industrial assets, remote devices such as mobile, tablet, laptops for example. The artifacts deployed on the cloud computing platform 114 may provide the tenants to commission the industrial plant 106, monitor and control the assets 108A-N in the industrial plant 106 and its operation, conduct maintenance of the industrial plants 106 and its assets 108A-N, configure an automation system in the industrial plant 106, monitor and control the automation system in the industrial plant 106 using various services provided by the cloud computing platform 114. Additionally, the artifact may provide the tenants to configure the assets 108A-N using the cloud services, onboard assets on to the cloud computing platform 114, send real-time raw plant data (e.g., operational data collected by sensors deployed in the industrial pant 106) to the cloud computing platform 114 via an IoT gateway, retrieve aggregated plant data from the cloud computing system 102, analyze the plant data or a specific condition, visualize the analyzed plant data, access digital twin models of assets, perform simulation of plant environment using digital twin models, manage IoT devices, download different versions of firmware, etc. using the cloud services provided by the cloud computing platform 114. The artifact may also be responsible for processing requests from the sub-tenants by invoking appropriate APIs and providing output to the tenants on the graphical user interface based on the execution of the APIs and its functions.

The access control module 132 is configured to provide access to the artifact to authorized sub-tenant based on role and permissions assigned to the authorized sub-tenant. Accordingly, the artifact execution module 134 is configured to perform one or more operations by executing the artifact deployed in the productive environment based on request(s) from the sub-tenant and send a response to the sub-tenant. For example, the tenant may request for aggregated time series data (e.g., speed of motor for one hour) associated with a motor to a data visualization API via a web interface of the user device 130A. The artifact execution module 134 may execute artifact files of the data visualization API to fetch the aggregated time series data associated with the motor and provide visualization of the aggregated time series data on the web interface of the user device 130A.

The artifact monitoring module 126 is configured to monitor performance of the artifact deployed in the productive environment during runtime (execution of the artifact on the cloud computing platform 114). The artifact monitoring module 126 is configured to determine abnormal behavior of the artifact deployed in the productive environment in real-time. The artifact monitoring module 126 is configured to provide feedback to the artifact development module 118, the artifact deployment module 122, and the tenants 106 via the user devices 130A-N. For example, the artifact monitoring module 126 generates a notification indicating abnormal behavior of the artifact. The artifact monitoring module 126 is configured to suspend execution of the artifact deployed in the productive environment.

The different modules of the artifact lifecycle management module 116 are described in greater detail below.

FIG. 2 is a diagrammatic representation illustrating high level interaction between different components of the artifact lifecycle management module 116, according to an embodiment. In operation, the artifact development module 118 generates an artifact package (binary code with APIs, manifest files, and database files) of an artifact (e.g., software application) based on user inputs provided via an integrated development environment. The artifact development module 118 assigns a unique identifier to the artifact. Also, the artifact development module 118 performs testing of the artifact using different test scenarios and stores the artifact package in the artifact repository 128 if the artifact passes the tests.

The artifact validation module 120 monitors new artifacts being stored in the artifact repository 128. Accordingly, when a new artifact is stored, the artifact validation module 120 automatically identifies a new artifact stored in the artifact repository 128. The artifact validation module 120 determines category of the artifact stored in the artifact repository 128 from a plurality of categories using the artifact identifier and determines one or more validation checks to be performed on the artifact based on the category of artifact. For example, if the artifact is a software application, then the artifact validation module 120 performs virus scan of the binary code or artifact package during pre-check, dependency check during static screening, and check behavior of the artifact by executing the artifact in a sandbox environment 202 during dynamic screening.

The artifact validation module 120 performs validation of the artifact using the determined validation checks. The artifact validation module 120 signs the artifact using an artifact signature (e.g., hash key) and stores the artifact signature associated with the artifact in the artifact repository 128. In certain embodiments, the artifact validation module signs the artifact using checksum or certificate. Also, the artifact validation module 120 sends a first notification to the artifact development module 118 indicating the artifact validation is successfully performed.

If the artifact validation is not successful, the artifact validation module 120 determines reasons for unsuccessful validation of the artifact. The artifact validation module 120 determines whether the issues in the artifact may be resolved automatically. In such a case, the artifact validation module 120 performs corrective actions on the artifact using a machine learning model. The machine learning model is pre-trained to resolve issues in the artifact if the validation of the artifact is unsuccessful. The artifact validation module 120 performs a validation check(s) that was unsuccessful on the modified artifact.

If the issues cannot be resolved, then the artifact validation module 120 sends a second notification to the artifact development module 118 indicating the reasons for unsuccessful validation of the artifact. The developer may fix the issues in the artifact based on the second notification using the development environment and store the updated version of the artifact in the artifact repository 128. Accordingly, the artifact validation module 120 performs validation of new version of the artifact.

Based on the first notification, the artifact development module 118 assigns the artifact for deployment in a productive environment 204 to a provider/deployer. The artifact deployment module 122 downloads the artifact package associated with the artifact from the artifact repository 128. Also, the artifact deployment module 122 may provide APIs and other services such as database services required for deployment of the artifact on the cloud computing platform 114. The artifact deployment module 122 authenticates the artifact based on the artifact signature. If the artifact is authenticated successfully, then the artifact deployment module 122 deploys the artifact in the productive environment 204 of the cloud computing platform 114 using the artifact package, APIs, and database services. Since the artifact is deployed in the productive environment 204, the artifact may be accessed and used to perform associated functions such as commissioning, configuring, monitoring, controlling, and/or maintaining assets 108A-N in the industrial plant 106 via the cloud computing platform 114.

Accordingly, the artifact deployment module 122 may test the behavior of the artifact in the productive environment 204. If the performance of the artifact is satisfactory, the artifact deployment module 122 assigns the artifact to one or more tenants that have requested the access to the artifact. Accordingly, the artifact provisioning module 124 provisions the artifact to the requested tenants. The access to the artifact may refer to using one or more cloud services hosted on the cloud computing platform 114 by accessing the artifact deployed in the productive environment 204 via the user devices 130A-N.

The artifact monitoring module 126 monitors behavior of the artifact during runtime, and reports the abnormal behavior of the artifact to the owner of the artifact, the provider of the artifact and the tenant of the artifact. In an embodiment, the artifact deployment module 122 may temporarily suspend the execution of the artifact in case abnormal behavior is reported. In another embodiment, the artifact deployment module 122 may uninstall the artifact from the productive environment 204 in case abnormal behavior is reported. In this manner, the artifact is developed, validated, deployed, provisioned, and monitored using the cloud computing platform 114.

FIG. 3 is a process flowchart 300 illustrating a method of artifact lifecycle management on a cloud computing system, according to an embodiment. At step 302, a development environment is provided on the cloud computing platform 114. The development environment may include providing a user interface with necessary tools and software, hosted on the cloud computing platform 114, such that the development environment provides the developer to develop and test artifacts to be deployed on the cloud computing platform 114. In certain embodiments, the development environment may be collaborative development environment that provides developers to develop an artifact from remote locations individually or in collaborative manner.

For example, if the artifact is a software application, then the development environment provides a user interface to generate application package (e.g., set of files related to the software application). The development environment may be created and displayed based on profile information of the developer. In certain embodiments, different development environments are set up for different developers based on their profile information. Also, the development environment may be provided based on category of artifact to be developed. If the artifact to be developed is a cloud application, then the development environment suitable for generating the application may be provided. However, if the artifact to be developed is an engineering configuration, then the development environment for generating engineering configuration for an automation system is generated. The development environment is hosted on the cloud computing system 102. The development environment is sometimes referred to as ‘integrated development environment’.

At step 304, an artifact is developed using the integrated development environment. In an embodiment, the artifact is developed using artificial intelligence (AI) algorithms. In another embodiment, the artifact is developed based on inputs from the developer. At step 306, the artifact is tested in the integrated development environment using different test scenarios. At step 308, the artifact is stored in the artifact repository 128. For example, the artifact package including binary code, manifest files, database files, and associated APIs are stored in the artifact repository 128. The artifact is also assigned a unique identifier so that the artifact may be searched and retrieved from the artifact repository 128 from time to time. Also, the unique identifier helps in tracking the artifact during its lifecycle. The artifact is also assigned a version number that would help in managing artifacts based on versions.

At step 310, validation is performed on the artifact. For example, one or more validation checks are performed on the artifacts. If the validation checks are successful, the artifact is signed using an artifact signature (e.g., hash key). The artifact signature associated with the artifact is stored in the artifact repository 128. At step 312, it is determined whether the validation performed on the artifact is successful. If the validation is not successful, feedback is provided to the developer indicating the validation checks that have failed and reasons for failure. The developer may fix the issues in the artifact and store the modified artifact in the artifact repository 128. The validation checks are performed again, when the modified artifact is automatically determined in the artifact repository 128. If the validation is not successful, then the artifact may be automatically modified based on corrective actions. The corrective actions are automatically computed based on machine learning techniques (e.g., AI models). The validation checks are performed on the modified artifact. In certain embodiments, the cloud computing platform 114 selectively performs the validation checks that the artifact failed previously. This may save time and resources in validating the artifact.

If the validation of the artifact is successful, at step 314, the artifact is authenticated and deployed in a productive environment (e.g., the productive environment 204). In certain embodiments, if the validation of the artifact is successful, then the artifact is assigned to an appropriate provider/deployer by the developer. Accordingly, the artifact is displayed in a graphical user interface (e.g., web interface) of the concerned provider/deployer. Thereafter, the provider initiates deployment process. Alternatively, the artifact may be automatically deployed in the productive environment 204 of the cloud computing platform 114 once the validation of the artifact is successful.

At step 316, the artifact is provisioned to one or more tenants of the cloud computing platform 114. In certain embodiments, the artifact provisioning module 124 establishes a set-up route between the artifact in the productive environment 204 and profile of the tenants. This provides the authorized tenants to view, access and use the artifact and its functionality via the cloud computing platform 114. At step 318, the artifact deployed on the cloud computing platform 114 is monitored in real-time. For example, the artifact is monitored for malicious behavior, performance, suspicious activity, high resource consumption, etc. At step 320, it is determined whether the operation of the artifact is normal. If it is determined that the operation of the artifact is not normal, then at step 322, the execution of the artifact on the cloud computing platform 114 is suspended temporarily or un-deployed from the productive environment 204 based on the nature of the issue. Accordingly, a feedback notification indicating abnormal behavior of the artifact is provided to the developer of the artifact, the tenant of the cloud computing platform 114, and the provider of the artifact. Additionally, the feedback notification may be sent to the artifact validation module 120 so that the artifact validation module 120 considers the feedback during validation of the modified artifact. The developer may modify the artifact based on the feedback notification. The artifact may be revalidated and/or re-deployed in the productive environment 204. Then, the modified artifact is provisioned to the tenants. If no abnormal behavior is found during monitoring activity, then execution of the artifact is continued uninterruptedly.

FIG. 4 is a block diagram of the artifact development module 118 configured to develop an artifact to be deployed in the productive environment 204, according to an embodiment. The artifact development module 118 includes a developer environment generation module 402, a developer authentication module 404, an artifact generation module 406, an artifact testing module 408, an artifact registration module 410, an artifact assignment module 412, an artifact version manager 414, and a feedback processing module 416.

The development environment generation module 402 is configured to generate an integrated development environment for developing an artifact. In an embodiment, the development environment generation module 402 generates the integrated development environment based on profile information of a requesting developer. In another embodiment, the development environment generation module 402 generates the integrated development environment based on type of artifact to be developed. The artifact may be a cloud application, an edge application, a code snippet, an automation project, a digital twin models, APIs, connectivity configurations, event-based functionality, security applications, simulation models and the like. The integrated development environment provides a graphical and/or console-based user interface on any of the user devices 130A-N belonging to one or more developers. The graphical user interface also displays needed tools and widgets to develop the artifact.

The developer authentication module 404 authenticates the developer to access the integrated development environment based on login credentials inputted by the developer. The artifact generation module 406 is configured to generate an artifact package for deployment on the cloud computing platform 114 based on user inputs (drag and drop feature) received from the developer. The artifact generation module 406 is configured to generate a unique identifier for the artifact. The artifact testing module 408 is configured to generate test cases for testing the generated artifact in a test environment. For example, test cases are based on type of artifacts including test data from assets, time series data, etc.). The artifact testing module 408 is configured to test the artifact in the test environment using the generated test cases. In certain embodiments, the test environment may be a part of the integrated development environment.

The artifact registration module 410 is configured to store the artifact in the artifact repository 128. The artifact registration module 410 is configured to provide or disable specific artifact versions for validation and deployment. The artifact assignment module 412 is configured for assigning the artifact to a provider/deployer for deployment in a productive environment 204 upon successful validation of the artifact. The artifact version manager 414 is configured to manage different versions of the artifact during the entire lifecycle of the artifact using unique identifier. The feedback processing module 416 is configured to process feedback from the artifact validation module 120, the artifact deployment module 122, and the artifact monitoring module 126. The feedback processing module 416 may provide recommendations to the artifact generation module 406 so that the artifact generation module 406 may make necessary medications to the artifact in next version.

FIG. 5 is a block diagram of the artifact validation module 120 configured to validate the artifact to be deployed in the productive environment 204, according to an embodiment. The artifact validation module 120 includes an artifact detection module 502, an artifact validator 504, a reporting module 506, and a feedback module 508.

The artifact detection module 502 is configured for automatically detecting storing of a new artifact by the artifact development module 118 in the artifact repository 128. For example, the artifact detection module 502 may monitor a repository file to determine the new artifacts stored in the artifact repository 128. Alternatively, the artifact detection module 502 may receive a trigger from the artifact repository 128 when uploading of the new artifact in the artifact repository 128 is complete.

The artifact validator 504 is configured for performing a plurality of validation checks on the artifact to identify issues in the artifact prior to deployment. In an embodiment, a pre-check (i.e., first validation check), static screening (i.e., a second validation check), and dynamic screening (i.e., third validation check) may be performed on the artifact. In an implementation, the artifact validator 504 is configured to perform pre-check on an artifact package of the artifact. The pre-check is performed on the artifact in order to identify obvious defects in artifacts. For example, the artifact validator 504 may perform virus and malicious code scan on the artifact package, check icon of artifact for compliance, determine adherence of artifact to standards, perform syntax and semantics checks, etc.

Furthermore, the artifact validator 504 is configured to perform static screening of the artifact. For example, the artifact validator 504 performs dependency checks, insecure credential analysis, indicator carving analysis, application asset carving and clearing, etc. The artifact validator 504 may crawl for dependencies and identify vulnerabilities in the dependencies. The artifact validator 504 may crawl for hardcoded certificates, private keys, usernames, password etc. and identify insecure credentials associated with the artifact. The artifact validator 504 may crawl for hardcoded URLs, IP addresses, domains/checks against threat intelligence database. The artifact validator 504 may crawl for embedded files (e.g., images, stylesheets, scripts, documents) and check against anti-virus engines and threat intelligence database.

The artifact validator 504 is configured to perform dynamic screening on the artifact. In an embodiment, the artifact validator 504 is configured to test the behavior of the artifact in runtime environment by executing the artifact in the sandbox environment 202. In this embodiment, the artifact validator 504 is configured to determine whether the artifact behavior is acceptable when deployed on the cloud computing platform 114. For example, the artifact validator 504 may check for Open Web Application Security Project (OWASP) web-application vulnerabilities, data exfiltration, insecure data storage, API conformance, robustness, performance, user interface/experience, deployment issues, etc.

The artifact validator 504 is also configured to sign the artifact by generating an artifact signature if the artifact passes all the validation checks. For example, the artifact may be signed using a checksum or certificate. In an embodiment, the artifact validator 504 applies secure hashing algorithm such as SHA-256 to the artifact files and generates a unique hash key for the artifact. An example hash key for an artifact is given below:

0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. The artifact validator 504 stores the artifact signature (e.g., the unique hash key) of the signed artifact in the artifact repository 128.

The reporting module 506 is configured for generating a first notification indicating that the artifact has passed the validation process. The feedback module 508 is configured for determining which of the validation checks were unsuccessful. The feedback module 508 is configured for determining reason responsible for unsuccessful validation checks. Also, the feedback module 508 is configured for automatically resolving issues by performing corrective actions computed using machine learning techniques (e.g., trained artificial intelligence models). Furthermore, the feedback module 508 is configured for generating a second notification indicating that the artifact failed validation check(s) and reasons for such failure. The feedback module 508 is configured for sending the second notification to the artifact development module 118.

FIG. 6 is a process flowchart 600 illustrating a method of performing validation of artifacts to be deployed in the productive environment 204, according to an embodiment. At step 602, an event associated with an artifact in the artifact repository 128 is automatically determined. For example, the event may be act of storing the artifact package in the artifact repository 128 by the artifact development module 118. In such case, the artifact to be deployed in the productive environment 204 is identified from the artifact repository 128. Alternatively, the event may be act of updating the artifact package stored in the artifact repository 128. If there are several artifacts waiting for validation, the newly determined artifact is added to the queue. If the multiple artifacts are uploaded simultaneously, the artifacts are added to the respective queue based on the determined category of the artifact. For example, several queues of artifacts may be maintained; each queue contains artifacts of a specific category.

At step 604, a pre-check of the artifact files is performed to determine obvious defects in the artifact. At step 606, it is determined whether pre-check performed on the artifact is successful. If the artifact fails the pre-check, then at step 608, a feedback indicating that the artifact failed one of the validation checks is sent to owner of the artifact (e.g., the developer). Alternatively, the artifact is modified according to pre-defined corrective actions and the pre-check of the modified artifact is performed. In certain embodiments, the pre-defined corrective actions are determined using machine learning techniques. If the artifact passes the pre-check, then at step 610, a static screening of the artifact files is performed. For example, the static screening of the artifact includes dependency checks, insecure credential analysis, indicator carving analysis, application asset carving and clearing, etc.

At step 612, it is determined whether the static screening performed on the artifact is successful. If the artifact fails static screening, then at step 608, a feedback indicating that the artifact failed one of the validation checks is sent to owner of the artifact (e.g., the developer). Alternatively, the artifact is modified according to pre-defined corrective actions and the static screening of the modified artifact is performed. In certain embodiments, the pre-defined corrective actions are determined using machine learning techniques. If the artifact passes the static screening, then at step 614, a dynamic screening of the artifact files is performed. In an embodiment, dynamic screening of the artifact involves executing the artifact in a sandbox environment 202 to test behavior of the artifact during runtime. In this embodiment, it is determined whether behavior of the artifact is within the acceptable standard when deployed on the cloud computing platform 114.

At step 616, it is determined whether the dynamic screening performed on the artifact is successful. If the artifact fails dynamic screening, then at step 608, a feedback indicating that the artifact failed one of the validation checks is sent to owner of the artifact (e.g., the developer). Alternatively, the artifact is modified according to pre-defined corrective actions and the static screening of the modified artifact is performed. In certain embodiments, the pre-defined corrective actions are determined using machine learning techniques.

If the dynamic screening of the artifact is successful, then at step 618, an artifact signature for the artifact is generated using the artifact files. For example, a hash key is generated by applying SHA-256 algorithm on the artifact files. At step 620, the artifact is signed using the artifact signature. That is, the artifact signature is linked to identifier associated with the artifact. At step 622, the artifact signature assigned to the artifact is stored in the artifact repository 128. Also, a notification indicating that the artifact is successfully validated is sent to the artifact developer module 118. It may be noted that the pre-check, static screening, and dynamic screening of the artifact may be performed in parallel. This may save time required for validating the artifact. There may be more validation checks in addition to pre-check, static screening, and dynamic screening of artifacts. Also, the type of validation checks performed in each of pre-check, static screening and dynamic screening may vary based on category of artifact and validation requirements for deploying the artifact on the cloud computing platform 114.

FIG. 7 is a block diagram of the artifact deployment module 122 configured to authenticate and deploy the artifact in the productive environment 204, according to an embodiment. The artifact deployment module 122 includes an authentication module 702, a deployment module 704, and a notification module 706.

The authentication module 702 is configured to authenticate the artifact requested to be deployed in the productive environment 204 based on the artifact signature. In an embodiment, the authentication module 702 re-generates unique hash key by applying secure hashing algorithm (e.g., SHA-256) on the artifact files. The authentication module 702 compares the re-generated hash key with the hash key associated with the artifact stored in the artifact repository 128. The authentication module 702 determines whether both the hash keys match. The authentication module 702 triggers an event to deploy the artifact if the both hash keys match.

The deployment module 704 is configured to deploy the artifact in the productive environment 204 based on the event triggered by the authentication module 702. The deployment module 704 is configured to determine one or more components required for deploying the artifact package in the productive environment 204 of the cloud computing system 102. For example, the components may include specific APIs and database services required to deploy the artifact in the productive environment 204. The deployment module 704 is configured to provide a list of recommended components required for deploying the artifact in the productive environment 204. This provides the provider to select and download the specific APIs and database services for deploying the artifact in the productive environment 204.

The notification module 706 is configured to notify the owner/deployer of the artifact in case the authentication fails. The notification module 706 is also configured to notify the provider/deployer in case the artifact is successfully deployed in the productive environment 204.

FIG. 8 is a process flowchart 800 illustrating a method of authenticating and deploying artifacts in the productive environment 204 on the cloud computing platform 114, according to an embodiment. At step 802, a request to deploy the artifact on the cloud platform 114 is received. In an embodiment, the artifact may be assigned to a specific provider/deployer for deployment in the productive environment 204 either automatically or by the owner of the artifact upon successful validation of the artifact. The assignment of the artifact is sent as a request to deploy the artifact on the cloud computing platform 114. Alternatively, the provider/deployer may search for a desired artifact in the artifact repository 128 using an artifact identifier/name. The provider/deployer may send a request to the artifact deployment module 124 to deploy the artifact.

At step 804, signature is re-generated using artifact files associated with the artifact to be deployed on the cloud computing platform 114. For example, a hash key is re-generated by applying SHA-256 algorithm on the artifact files. At step 806, the artifact signature associated with the artifact is retrieved from the artifact repository 128. At step 808, it is determined whether the artifact signature matches with the re-generated artifact signature. If no match is found, then at step 810, a notification is generated indicating that the artifact is not genuine. Accordingly, the request to deploy the artifact on the cloud computing platform 114 is rejected.

If match is found, at step 812, the artifact package associated with the artifact and associated files (e.g., APIs, database files, etc.) are retrieved from the artifact repository 128. At step 816, the artifact is deployed in the productive environment 204 of the cloud platform 114. At step 818, the artifact is provisioned to one or more tenants of the cloud platform 114. For example, the artifact is assigned to the tenants so that the tenants may use the artifact deployed in the productive environment 204. The artifact is assigned to tenants that have subscribed to the artifact. In addition, the tenants may assign the artifact to sub-tenants so that sub-tenants may access the artifact.

FIG. 9 depicts a graphical user interface 900 displaying different artifacts associated with a developer. In FIG. 9, the graphical user interface 900 displays a dashboard 902 associated with a developer. The developer may access the dashboard 902 by signing-in to a development environment provided by the cloud computing platform 114. The dashboard 902 displays a grid layout of different applications 904A-H created by a developer (e.g., Jonathan Doe). The dashboard 902 displays icon of the applications 904A-H, state of the applications 904A-H (validation failed, validation successful, not validated, deployed, provisioned, in development, testing, registered, uploaded, etc.), and version number associated with the applications 904A-H. The dashboard 902 provides the developer to create a new application using ‘create new application’ link 906 or a new version of the artifact using ‘create new version’ link 908. The dashboard 902 allows the developer to search of specific applications from the plurality of application 904A-H using a search bar 910.

FIG. 10 depicts a graphical user interface 1000 showing an application to be deployed in the productive environment 204. In FIG. 10, the graphical user interface 1000 depicts details 1002 of an application (i.e., Robot Control) ready for deployment in the productive environment 204. The details of the application are displayed in the graphical user interface 1000 of a provider based on assignment of the application by a developer upon successful validation of the application. The graphical user interface 1000 displays APIs 1004 required for deployment of the application on a live system (i.e., the productive environment 204). The graphical user interface 1000 provides a deploy button 1006 that provides the provider/deployer to trigger deployment of the application in the productive environment 204. Also, the graphical user interface 1000 provides a download button 1008 that provides the provider/deployer to download an application package (binary code, APIs, manifest files) of the application.

FIG. 11 depicts a graphical user interface 1100 showing status of an application provisioned to tenants. In FIG. 11, the graphical user interface 1100 displays details of the application (e.g., Robot Control) provisioned to the tenants 1104. For example, the graphical user interface 1100 displays name of the application as ‘Robot Control’, a version of the application as ‘v1.1’, a unique identifier of the application as ‘290897’, and a developer identifier as ‘IDDevABC’. Also, the graphical user interface 1100 displays health status 1106 of the application. For example, the health status 1106 of the application ‘Robot Control’ is displayed as ‘Running’. The graphical user interface 1100 displays provisioning status 1108 of the application. For example, the provisioning status 1106 of the application ‘Robot Control’ is displayed as ‘Published’. Also, the graphical user interface 1100 displays status 1110 of the application with respect to each of the tenants 1 to 9 in the tenant list 1104, that have subscribed to the application. For example, the graphical user interface 1100 displays status 1110 of the application ‘Robot Control’ with respect to the tenant 1 as ‘active’. Similarly, the graphical user interface 1100 displays status 1110 of the application ‘Robot Control’ with respect to the tenant 3 as ‘activation requested’. That is, the tenant 3 has requested the provider to activate the application ‘Robot Control’.

FIG. 12 depicts a graphical user interface 1200 showing lifecycle status information of different applications 1202A-C associated with the provider. In FIG. 12, the graphical user interface 1200 displays real-time lifecycle status 1204 of each instance of the applications 1202A-C deployed by the provider in the productive environment 204. The lifecycle status 1204 may indicate whether the respective applications 1202A-C as running, deployed, published, crashed, stopped, assigned and so on corresponding to a provisioning stage and a productive stage. For example, the graphical user interface 1200 displays lifecycle status 1204 of an application 1202A (i.e., Robot Control) in a provisioning stage as ‘deployed’, and ‘running’ in a productive stage (runtime stage).

FIG. 13 depicts a graphical user interface 1200 showing runtime behavior of applications being monitored. In FIG. 12, the graphical user interface 1300 displays real time status of the provisioned application (i.e., Robot Control) that is monitored by the artifact monitoring module 126 in real time. The real time status indicates health status of the application, traffic data, usage data, trend comparison, subscription information, etc. The graphical user interface 1200 may also display abnormal behavior of the application if detected during monitoring of the application.

FIG. 14 is a schematic representation of the cloud computing system 102 such as those shown in FIG. 1, according to an embodiment. The cloud computing system 102 includes processing units 1402, a memory unit 1404, a storage unit 1406, a communication interface 1408, and the cloud interface 110.

The processing units 1402 may be one or more processor (e.g., servers). The processing units 1402 is configure to execute machine-readable instructions stored on a computer-readable storage medium such as the memory unit 1404 for performing one or more functionalities described in the foregoing description including but not limited to delivering cloud services to authorized tenants, and managing artifacts during its lifecycle. The memory unit 1404 includes the cloud computing platform 114 stored in the form of machine-readable instructions and executable by the processing units 1402. Alternatively, the cloud computing platform 114 may take a form of hardware such as a processor with embedded software. The cloud computing platform includes the artifact lifecycle management module 116, the access control module 132, and the artifact execution module 134 stored in the form of machine-readable instructions executable by the processing units 1402.

The storage unit 1406 may be volatile or non-volatile storage. In the embodiment, the storage unit 1406 is includes the artifact repository 128 for storing artifact packages and artifact signatures. The artifact repository 128 is configured to store a directory entry associated with respective artifact. The artifact repository 128 is also configured to store recorded information associated with execution of instance of artifacts. The storage unit 1406 may also store raw or aggregated data received from the industrial plant 106. The communication interface 1408 acts as interconnect between different components of the cloud computing system 102. The communication interface 1108 may provide communication between the processing units 1402, the memory unit 1404 and the storage units 1106. The processing units 1402, the memory unit 1404 and the storage unit 1406 may be located in same location or at different locations remote from the industrial plant 106.

The cloud interface 110 is configured to establish and maintain communication links with the industrial plant 106. Also, the cloud interface 110 is configured to maintain a communication channel between the cloud computing system 102 and the user devices 130A-N.

FIG. 15 is a block diagram of an artifact generation module 406 such as those shown in FIG. 4, according to an embodiment. The artifact generation module 406 includes an executable generation module 1502, an entry creation module 1504, an association module 1506, an artifaction package generation module 1508, and an artifact package management module 1510.

The executable generation module 1502 is configured to generate an executable file associated with an artifact to be deployed on the cloud computing system 102. For example, the executable file is a binary file of the artifact. The entry creation module 1502 is configured to create a directory entry associated with the artifact in the artifact repository 128. The association module 1506 is configured to generate association of the executable file with the directory entry of the artifact. The association module 1506 is configured to generate association of a template file with the directory entry of the artifact. The template file may include parameters defining input and output structure for the artifact. The parameter values may be modified prior to execution of an instance of the artifact by a user. The artifact may be used for different scenarios by modifying the parameters in the template. For example, different plant or assets have different requirement for analyzing data. Embodiments provide use of same artifact to meet different analysis requirement for those plant and asset by changing the template file associated with the directory entry prior to execution of the artifact. As a result, different artifacts are not required to meet different analysis requirement, instead a single artifact may be used for different purposes.

The artifact package generation module 1508 is configured to generate an artifact package including the executable file and the template associated with the artifact. The artifact package generation module 1508 is configured to store the artifact package associated with the artifact in the artifact repository 128. The artifact package management module 1510 is configured to publish the artifact package on an application marketplace. The artifact package management module 1510 is configured to provide access to the artifact package published via the application marketplace. Users of the cloud computing system 102 may access the artifact via the cloud application marketplace. The artifact package management module 1510 is configured to modify the parameters of the template of the artifact based on parameter values received from user devices 130A-N. The artifact package management module 1510 is configured to record information associated with execution of the instance of the artifact. For example, the information may include execution times, response time, failed task, and similar artifacts.

FIG. 16 is a process flowchart 1600 illustrating a method of providing artifacts in the cloud computing environment 100, according to an embodiment. At step 1602, an executable file associated with an artifact (e.g., algorithm) to be deployed on the cloud computing system 102 is generated. For example, the executable file may be an executable analytic file when the artifact is an analytics algorithm. At step 1604, a directory entry associated with the artifact is created in the artifact repository 128. For example, the directory entry of the artifact includes description of the artifact indicating a function of the artifact, and application scenario of the artifact.

At step 1606, association between the executable file associated with the artifact and the directory entry associated with the artifact is generated. The executable file includes a file (e.g., analytic JAR file), directory entry identifier, type of the executable file, description of the executable file. At step 1608, association between a template associated with the artifact and the directory entry associated with the artifact is generated. The template includes a file (e.g., analytic template file), directory entry identifier, type of the file, description of the file. The template file may describe one or more parameters including input and output structure.

At step 1610, an artifact package including the executable file and the template associated with the artifact is generated. At step 1612, the artifact package associated with the artifact is stored in the artifact repository 128. At step 1614, the artifact package associated with the artifact is published in an application marketplace using the directory entry.

FIG. 17 is a process flowchart 1700 illustrating a method of providing access to the artifact published in the application marketplace, according to an embodiment. At step 1702, a request to access the artifact stored in artifact repository 128 is received from a user device 130A. The request to access the artifact includes one or more keywords associated with the artifact. At step 1704, it is determined whether the keyword associated with the artifact matches with description of one or more directory entries in the artifact repository 128. If a match is found, at step 1706, the directory entry associated the artifact is accessed from the artifact repository. If no match is found, at step 1708, a notification is sent to the user device 130A. At step 1710, the artifact package associated with the artifact is obtained from the artifact repository 128 using the directory entry. At step 1712, access to the artifact package associated with the artifact is provided to the user device 130A via the application marketplace.

FIG. 18 is a process flowchart 1800 illustrating a method of executing the artifact deployed in the productive environment t204 of the cloud computing system 102, according to an embodiment. At step 1802, a request to execute an instance of the artifact deployed in the productive environment 204. The request includes one or more parameters values of the template associated with the artifact. At step 1804, parameter values of the template associated with the artifact are modified. At step 1806, an instance of the artifact deployed in the productive environment 204 according to the parameter values in the modified template associated with the artifact. At step 1808, output of execution of the instance of the artifact is provided to the user device 130A.

At step 1810, information associated with execution of the instance of the artifact deployed in the productive environment 204 is recorded in the artifact repository 128. For example, the information associated with the execution of the at least one instance of the artifact includes execution time, response time, failed task, and similar artifacts. The execution time may include total execution time associated with the artifact. The response time may include average response time of the artifact. The failed task may include exceptions recorded during execution of the instance of the artifact. The similar artifact may include artifacts that are similar to the artifact being executed. The information may help a developer to improve the artifact.

In various embodiments, the cloud computing system 102 provides a platform for managing different types of artifacts throughout its lifecycle. The cloud computing system 102 provides developing, testing, validating, deploying, publishing, provisioning, and real-time execution of artifacts responsible for delivering cloud services such as data storage, data analysis, data visualization. The cloud services are intended to provide commissioning, configuring, monitoring, controlling, and maintenance of assets in a facility including industrial plants. The cloud computing system 102 provides closed-loop management of artifacts during its lifecycle by providing feedback from validation, deployment, and run-time execution of artifacts in real-time, resulting in low down time and efficient management of the artifacts. The cloud computing system 102 provides secured deployment of artifacts by automatically validating and authenticating the artifacts prior to deployment in the productive environment. Also, the cloud computing system 102 monitors performance of artifacts in real-time and reports and anomalies detected during execution of the artifacts, thereby preventing abnormal operation of artifacts and hazards.

Embodiments may take a form of a computer program product including program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution system. For the purpose of this description, a computer-usable or computer-readable medium may be any apparatus that may contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium may be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM), a read only memory (ROM), a rigid magnetic disk and optical disk such as compact disk read-only memory (CD-ROM), compact disk read/write, and DVD. Both processors and program code for implementing each aspect of the technology may be centralized or distributed (or a combination thereof) as known to those skilled in the art.

It is to be understood that the elements and features recited in the appended claims may be combined in different ways to produce new claims that likewise fall within the scope of the present invention. Thus, whereas the dependent claims appended below depend from only a single independent or dependent claim, it is to be understood that these dependent claims may, alternatively, be made to depend in the alternative from any preceding or following claim, whether independent or dependent, and that such new combinations are to be understood as forming a part of the present specification.

While the present invention has been described above by reference to various embodiments, it may be understood that many changes and modifications may be made to the described embodiments. It is therefore intended that the foregoing description be regarded as illustrative rather than limiting, and that it be understood that all equivalents and/or combinations of embodiments are intended to be included in this description. 

1. A method of providing an artifact package associated with an artifact to be deployed in a cloud computing system, the method comprising: generating an executable file associated with an artifact to be deployed on the cloud computing system; creating a directory entry associated with the artifact in an artifact repository; generating an association between the executable file associated with the artifact and the directory entry associated with the artifact; generating association between a template associated with the artifact and the directory entry associated with the artifact; generating an artifact package comprising the executable file and the template associated with the artifact; and publishing the artifact package associated with the artifact in an application marketplace using the directory entry; deploying the artifact package associated with the artifact in a productive environment of the cloud computing system provisioning the artifact to one or more tenants of the cloud computing system; and executing an instance of the artifact deployed in the productive environment according to one or more parameters in the template associated with the artifact.
 2. The method of claim 1, wherein the directory entry of the artifact comprises a description of the artifact indicating a function of the artifact and an application scenario of the artifact.
 3. The method of claim 1, further comprising: storing the artifact package associated with the artifact in the artifact repository.
 4. The method of claim 1, further comprising: receiving a request to access the artifact stored in artifact repository, wherein the request to access the artifact comprises one or more keywords associated with the artifact; accessing the directory entry associated with the artifact using the keyword associated with the artifact; obtaining the artifact package associated with the artifact from the artifact repository using the directory entry; and providing access to the artifact package associated with the artifact via the application marketplace.
 5. The method of claim 4, wherein accessing the directory entry associated with the artifact using the keyword associated with the artifact comprises: determining that the keywords associated with the artifact matches with description of one or more directory entries in the artifact repository; and accessing the directory entry associated the artifact from the artifact repository.
 6. The method of claim 1, further comprising: validating the artifact package associated with the artifact to be deployed on the cloud computing system.
 7. The method of claim 1, further comprising: receiving a request to execute an instance for the artifact deployed in the productive environment, the request comprising one or more parameter values of the template associated with the artifact; and modifying the one or more parameter values of the template associated with the artifact.
 8. (canceled)
 9. (canceled)
 10. The method of claim 1, further comprising: recording information associated with execution of the instance of the artifact deployed in the productive environment.
 11. The method of claim 10, wherein the information associated with the execution of the instance of the artifact comprises execution time, response time, failed task, and similar artifacts.
 12. (canceled)
 13. An apparatus comprising: one or more processing units; and at least one accessible memory unit communicatively coupled to the one or more processing units, wherein the at least one accessible memory unit comprises an artifact lifecycle management module, the artifact lifecycle management module configured to: generate an executable file associated with an artifact to be deployed on a cloud computing system; create a directory entry associated with the artifact in an artifact repository; generate an association between the executable file associated with the artifact and the directory entry associated with the artifact; generate association between a template associated with the artifact and the directory entry associated with the artifact; generate an artifact package comprising the executable file and the template associated with the artifact; and publish the artifact package associated with the artifact in an application marketplace using the directory entry; deploy the artifact package associated with the artifact in a productive environment of the cloud computing system; provision the artifact to one or more tenants of the cloud computing system; and execute an instance of the artifact deployed in the productive environment according to one or more parameters in the template associated with the artifact.
 14. (canceled)
 15. (canceled)
 16. The apparatus of claim 13, wherein the directory entry of the artifact comprises a description of the artifact indicating a function of the artifact and an application scenario of the artifact.
 17. The apparatus of claim 13, wherein the artifact lifecycle management module is further configured to: store the artifact package associated with the artifact in the artifact repository.
 18. The apparatus of claim 13, wherein the artifact lifecycle management module is further configured to: receive a request to access the artifact stored in artifact repository, wherein the request to access the artifact comprises one or more keywords associated with the artifact; access the directory entry associated with the artifact using the keyword associated with the artifact; obtain the artifact package associated with the artifact from the artifact repository using the directory entry; and provide access to the artifact package associated with the artifact via the application marketplace.
 19. The apparatus of claim 18, wherein the artifact lifecycle management module is configured to access the directory entry associated with the artifact using the keyword associated with the artifact by: determining that the keywords associated with the artifact matches with description of one or more directory entries in the artifact repository; and accessing the directory entry associated the artifact from the artifact repository.
 20. The apparatus of claim 13, wherein the artifact lifecycle management module is further configured to: validate the artifact package associated with the artifact to be deployed on the cloud computing system.
 21. The apparatus of claim 13, wherein the artifact lifecycle management module is further configured to: receive a request to execute an instance for the artifact deployed in the productive environment, the request comprising one or more parameter values of the template associated with the artifact; and modify the one or more parameter values of the template associated with the artifact.
 22. The apparatus of claim 13, wherein the artifact lifecycle management module is further configured to: recording information associated with execution of the at least one instance of the artifact deployed in the productive environment.
 23. The apparatus of claim 22, wherein the information associated with the execution of the at least one instance of the artifact comprises execution time, response time, failed task, and similar artifacts.
 24. A non-transitory computer implemented storage medium that stores machine-readable instructions executable by at least one processor for providing an artifact package associated with an artifact to be deployed in a cloud computing system, the machine-readable instructions comprising: generating an executable file associated with an artifact to be deployed on the cloud computing system; creating a directory entry associated with the artifact in an artifact repository; generating an association between the executable file associated with the artifact and the directory entry associated with the artifact; generating association between a template associated with the artifact and the directory entry associated with the artifact; generating an artifact package comprising the executable file and the template associated with the artifact; and publishing the artifact package associated with the artifact in an application marketplace using the directory entry; deploying the artifact package associated with the artifact in a productive environment of the cloud computing system provisioning the artifact to one or more tenants of the cloud computing system; and executing an instance of the artifact deployed in the productive environment according to one or more parameters in the template associated with the artifact. 